]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 years agoenvironment: reduce calls to g_time_zone_new_local()
Florian Müllner [Thu, 27 Feb 2020 21:46:44 +0000 (13:46 -0800)]
environment: reduce calls to g_time_zone_new_local()

Creating a new GTimeZone for the local timezone can be quite expensive if
done repeatedly. It requires an open(), mmap(), and parsing of
/etc/localtime.

This patch was provided by Florian, and I've tested it as far back as
3.28.4 to ensure that we are really reducing the number of open() calls
on the compositor thread.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1051

Signed-off-by: Christian Hergert <chergert@redhat.com>
6 years agoshell: fix typo in comment
Christian Hergert [Thu, 27 Feb 2020 02:59:31 +0000 (18:59 -0800)]
shell: fix typo in comment

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1050

6 years agoglobal: force fsync() to worker thread when saving state
Christian Hergert [Wed, 26 Feb 2020 22:46:20 +0000 (14:46 -0800)]
global: force fsync() to worker thread when saving state

The g_file_replace_contents_async() API can potentially call fsync() from
the thread calling into it upon completion. This can have disasterous
effects when run from the compositor main thread such as complete stalls.

This is a followup to 86a00b6872375a266449beee1ea6d5e94f1ebbcb which
assumed (like the rest of us) that the fsync() would be performed on the
thread that was doing the I/O operations.

You can verify this with an strace -e fsync and cause terminal to display
a command completed notification (eg: from a backdrop window).

This also fixes a lifecycle bug for the variant, as
g_file_replace_contents_async() does not copy the data during the operation
as that is the responsibility of the caller. Instead, we just use a GBytes
variant and reference the variant there.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1050

6 years agoci: Prohibit template strings in translatable files
Florian Müllner [Tue, 18 Feb 2020 16:08:23 +0000 (17:08 +0100)]
ci: Prohibit template strings in translatable files

Sadly, xgettext's dealing with template strings is abysimal, so we
had to stop using them in files with translatable strings.

Make sure we don't accidentally sneak in template strings again(*)
and enforce that rule in a CI job.

(*) easy "mistake", considering how much nicer they are than
    String.prototype.format()

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1016

6 years agoci: Check that files with translatable strings are listed in POTFILES
Florian Müllner [Tue, 18 Feb 2020 18:05:47 +0000 (19:05 +0100)]
ci: Check that files with translatable strings are listed in POTFILES

Also known as "Piotr Drąg Bot".

We will soon make sure that files processed by xgettext don't use template
strings. To make that check as adequate as possible, ensure that no source
code files are missing from POTFILES.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1016

6 years agocalendar-server: Remove unused defines
Florian Müllner [Tue, 18 Feb 2020 16:22:56 +0000 (17:22 +0100)]
calendar-server: Remove unused defines

The file doesn't contain any translatable strings, so the i18n
macros are unused.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1016

6 years agoaltTab: Don't fade out thumbnails on destroy
Jonas Dreßler [Mon, 27 Jan 2020 22:42:28 +0000 (23:42 +0100)]
altTab: Don't fade out thumbnails on destroy

The thumbnails actor `this._thumbnails` has already been destroyed when
calling `_destroyThumbnails()` from the `destroy` signal handler because
it is a child actor of the AppSwitcherPopup. So stop destroying the
thumbnails separately (fading them out inside a destroy handler wouldn't
make sense anyway).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Use correct scroll-direction property
Jonas Dreßler [Wed, 15 Jan 2020 16:04:07 +0000 (17:04 +0100)]
switcherPopup: Use correct scroll-direction property

The correct property for the scroll-direction with scrolling events is
`direction`, no `scroll_direction`. This fixes scrolling in the alt-tab
popup, which broke with the actorization changes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Always return true when the popup finished early
Jonas Dreßler [Thu, 6 Dec 2018 17:05:39 +0000 (18:05 +0100)]
switcherPopup: Always return true when the popup finished early

When the switcherPopup was initiated successfully, we return true,
otherwise the WindowManager will try to destroy it. Since an early
release of the keystroke will also switch to another application and
close the switcher just fine, we should return true to indicate success
here.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Lookup index of items when hovering or clicking
Jonas Dreßler [Wed, 15 Jan 2020 15:19:41 +0000 (16:19 +0100)]
switcherPopup: Lookup index of items when hovering or clicking

Right now the index that gets selected on click and motion events is set
when connecting the event inside the addItem function. If items are
added or removed (for example when an application is closed by pressing
"q"), this index isn't valid anymore and has to be updated.

To fix this, use the items themselves instead of the index as arguments
for the event handlers and lookup the index of the item inside the event
handler.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Implement functions to add and remove accessible states
Jonas Dreßler [Thu, 26 Apr 2018 09:19:40 +0000 (11:19 +0200)]
switcherPopup: Implement functions to add and remove accessible states

Set the accessible states of the switcherList items by calling a
function instead of manipulating class-internal variables from outside
the class, which is considered bad practice.

The check whether the item at `_selectedIndex` exists can also be
removed since we always select a new index after an item was removed
(i.e. an app was closed) and destroy the alt-tab switcher right away if
no more items exist (see `SwitcherPopup._itemRemovedHandler`).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Select correct item after removal of item
Jonas Dreßler [Wed, 25 Apr 2018 22:32:57 +0000 (00:32 +0200)]
switcherPopup: Select correct item after removal of item

If an item was removed, make sure the selected item is still selected or
select the last one if the selected item was removed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Disable hover on scrolling events
Jonas Dreßler [Sun, 6 May 2018 20:49:52 +0000 (22:49 +0200)]
switcherPopup: Disable hover on scrolling events

Just like with keyboard events, disable hover on scrolling events. Mouse
movements should not mess up the selection while scrolling.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Swap Math.max and Math.min in _scrollToLeft
Jonas Dreßler [Wed, 25 Apr 2018 21:56:29 +0000 (23:56 +0200)]
switcherPopup: Swap Math.max and Math.min in _scrollToLeft

Limit the minimum and maximum value to scroll to inside the box to 0 and
the upper limit, for some reason this was done right in _scrollToRight,
but not in _scrollToLeft.

This fixes the behavior of scrolling to the left: Before, scrolling one
item to the left moved the view to the first element of the list (this
can make the selected element invisible in large lists). Instead, scroll
one item to the left, just like scrolling to the right works.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Use local variable for index in scrolling functions
Jonas Dreßler [Wed, 25 Apr 2018 21:24:05 +0000 (23:24 +0200)]
switcherPopup: Use local variable for index in scrolling functions

Make sure the index that's being scrolled to doesn't change while the
scrolling animation is running by using an argument instead of the
this._highlighed class scope variable.

This fixes wrongly shown arrows when selecting new elements faster than
the scrolling animation takes for one index. The check run to disable
the arrow might be checking against a newer index than the one at the
start of the animation which results in the arrow not getting hidden
even if no more scrolling is possible.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Use this._highlighted to check for reentrancy
Jonas Dreßler [Wed, 25 Apr 2018 20:14:57 +0000 (22:14 +0200)]
switcherPopup: Use this._highlighted to check for reentrancy

Since this._highlighted is always set to the currently highlighted
index, there's no need to save the index to a separate variable. This
obviously depends on getting the new item highlighted as a result of the
item-entered event.

This fixes bugs in situations where the highlighted element changes
after an event that is not calling _onItemEnter, for example after
scrolling or pressing a key. In those cases the _currentItemEntered
variable wouldn't be updated and the old item couldn't be entered
anymore without entering another one before.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoUpdate Persian translation
Danial Behzadi [Wed, 26 Feb 2020 21:06:04 +0000 (21:06 +0000)]
Update Persian translation

6 years agoUpdate Catalan translation
Jordi Mas [Wed, 26 Feb 2020 20:58:52 +0000 (21:58 +0100)]
Update Catalan translation

6 years agoUpdate Galician translation
Fran Dieguez [Wed, 26 Feb 2020 20:55:17 +0000 (20:55 +0000)]
Update Galician translation

6 years agologinDialog: Do not expand "Not listed" button
Florian Müllner [Tue, 25 Feb 2020 17:15:49 +0000 (18:15 +0100)]
loginDialog: Do not expand "Not listed" button

Visually the button is just an interactive label, so having the
interactive area extend to the empty space next to the label
is surprising.

Instead, left-align the whole button rather than just the label
inside, so the clickable area corresponds to the visible one.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1046

6 years agompris: Disallow media section on login screen
Florian Müllner [Thu, 20 Feb 2020 15:40:04 +0000 (16:40 +0100)]
mpris: Disallow media section on login screen

The 'gdm' user is not going to run a media player, so there is no
point in allowing the corresponding section on the login screen.

All other sections are already disabled, so this is the only reason why
we end up with the message list instead of only showing the calendar.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2241

6 years agoRevert "js/ui: Use Clutter.OffscreenRedirect.ON_IDLE"
Daniel van Vugt [Wed, 26 Feb 2020 03:53:40 +0000 (11:53 +0800)]
Revert "js/ui: Use Clutter.OffscreenRedirect.ON_IDLE"

This reverts commit c0c027c608d0aa1c547a2a82bd3ce6b84bb83b83. Because for
some reason animating external opacity and position is still incurring
internal repaints, which disables offscreening and makes fading of
overlapping actors look wrong. `ON_IDLE` should be fixed in mutter before
it is used (in boxpointer at least) again.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2270

6 years agoci: Adjust URL check
Florian Müllner [Tue, 25 Feb 2020 23:18:17 +0000 (00:18 +0100)]
ci: Adjust URL check

While the old merge request URLs still work, gitlab recently started
including an additional /- for merge requests.

Adjust the regex to account for that, so that simply copying the URL
from gitlab works again.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1048

6 years agooverview: Hide the overview on session mode hasOverview changes
Jonas Dreßler [Mon, 24 Feb 2020 10:19:28 +0000 (11:19 +0100)]
overview: Hide the overview on session mode hasOverview changes

If the sessionMode does not allow to show the overview, we should also
hide an already visible overview.

This fixes a bug where, if the lockscreen was shown while the overview
was visible, the Ctrl+Alt+Tab popup would allow navigating inside the
overview because the overview actor is still mapped.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1043

6 years agopanel: Only consider St.Widgets for corner buttons
Philippe Troin [Thu, 9 May 2019 17:47:23 +0000 (10:47 -0700)]
panel: Only consider St.Widgets for corner buttons

We cannot syncronize styles with plain Clutter.Actors, so don't return
them when looking for corner buttons.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1047

6 years agoenvironment: Handle reversed transition with 0 duration
Florian Müllner [Sat, 22 Feb 2020 15:35:32 +0000 (16:35 +0100)]
environment: Handle reversed transition with 0 duration

If a transition is reversed, the final property values will be the
same as before the transition. However this currently only works
correctly when we actually use a transition; to fix this with a
duration of 0, simply skip the set() call when the transition is
reversed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1042

6 years agosass: use relative values for user-icon
Sam Hewitt [Tue, 25 Feb 2020 16:36:25 +0000 (16:36 +0000)]
sass: use relative values for user-icon

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2242

6 years agotheme: Fix horizontal default user widget
Florian Müllner [Thu, 20 Feb 2020 15:10:36 +0000 (16:10 +0100)]
theme: Fix horizontal default user widget

Commit 6c6c89c63470b5 added a pill around the default avatar, but
assumed the sizes from the vertical widget used on the lock screen.

In order to fix the horizontal widget on the login screen, move the
size-specific bits to the corresponding .horizontal and .vertical
sections, and half the sizes for the former (which corelates with
the icon sizes).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2242

6 years agodateMenu: Sync initial state of the message indicator
Jonas Dreßler [Thu, 20 Feb 2020 18:57:20 +0000 (19:57 +0100)]
dateMenu: Sync initial state of the message indicator

While the unread messages indicator is updated when starting a new
session because we call _onSourceAdded() on existing sources, we should
also update the do-not-disturb setting which might still be enabled.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1037

6 years agodateMenu: Remove an unnecessary change for RTL layouts
Jonas Dreßler [Thu, 20 Feb 2020 19:11:16 +0000 (20:11 +0100)]
dateMenu: Remove an unnecessary change for RTL layouts

Calculating 1 - 0.5 is rather useless if the value was 0.5 before...

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1037

6 years agotheme: Hide panel underline under the do not disturb icon
Jonas Dreßler [Thu, 20 Feb 2020 19:10:54 +0000 (20:10 +0100)]
theme: Hide panel underline under the do not disturb icon

Hide the focused/active indicator of the panel underneath the
do-not-disturb icon.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1037

6 years agotheme/message-list: Increase spacing for do-not-disturb enable-button
Jonas Dreßler [Thu, 20 Feb 2020 16:26:17 +0000 (17:26 +0100)]
theme/message-list: Increase spacing for do-not-disturb enable-button

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1037

6 years agotheme: sync toggle-off-dark with gtk
Jakub Steiner [Tue, 25 Feb 2020 12:47:01 +0000 (13:47 +0100)]
theme: sync toggle-off-dark with gtk

- improve contrast

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2157

6 years agoUpdate Hungarian translation
Balázs Úr [Tue, 25 Feb 2020 06:26:27 +0000 (06:26 +0000)]
Update Hungarian translation

6 years agost: implement ClutterActorClass.has_accessible()
Christian Hergert [Sun, 23 Feb 2020 22:08:41 +0000 (14:08 -0800)]
st: implement ClutterActorClass.has_accessible()

Implement ClutterActorClass.has_accessible() to ensure that CallyActor does not
recreate accessibles during the removal/destruction of an actor.  This relies
on GNOME/mutter!1083 for the ClutterActorClass.has_accessible virtual function.

Running GNOME Shell for about 30 seconds results in a difference between
the two runs.

Before:

    ALLOCATED      TOTAL    FUNCTION
[   52.2 KiB] [   0.05%]    cally_actor_real_remove_actor
[   36.3 KiB] [   0.04%]      st_widget_get_accessible
[    9.8 KiB] [   0.01%]      atk_gobject_accessible_for_object
[    3.2 KiB] [   0.00%]      g_signal_emit_by_name
[    2.9 KiB] [   0.00%]      clutter_actor_get_children

After:

    ALLOCATED      TOTAL    FUNCTION
[    1.8 KiB] [   0.00%]    cally_actor_real_remove_actor
[    1.1 KiB] [   0.00%]      clutter_actor_get_children
[  659 bytes] [   0.00%]      g_signal_emit_by_name

Obviously 50KiB isn't a huge savings.

Although fixing things to avoid re-entrancy on destruction can be very useful
from a correctness standpoint.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2263

6 years agoUpdated Danish translation
Alan Mortensen [Mon, 24 Feb 2020 21:40:32 +0000 (22:40 +0100)]
Updated Danish translation

6 years agoUpdate Turkish translation
Emin Tufan Çetin [Mon, 24 Feb 2020 15:08:21 +0000 (15:08 +0000)]
Update Turkish translation

6 years agounlockDialog: Set accessible name of icon-only buttons
Florian Müllner [Wed, 19 Feb 2020 17:06:38 +0000 (18:06 +0100)]
unlockDialog: Set accessible name of icon-only buttons

We turned both the auth prompt's cancel button and the switch user
button into icon buttons now, which means they are completely cryptic
when using a screen reader.

Just use the previously used labels as accessible names, which has the
nice side effect of lowering the impact of the string freeze break.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agoauthPrompt: Don't focus hidden cancelButton
Florian Müllner [Wed, 19 Feb 2020 16:32:22 +0000 (17:32 +0100)]
authPrompt: Don't focus hidden cancelButton

The button is hidden on the lock screen, so it shouldn't be allowed to
activate it, be it via click or keyboard. The latter is still possible
by keynaving to the button and hitting space/enter. Fix that by making
the button unfocusable when we make it unreactive.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agounlockDialog: Turn mainBox into an St.Widget
Florian Müllner [Wed, 19 Feb 2020 16:15:48 +0000 (17:15 +0100)]
unlockDialog: Turn mainBox into an St.Widget

This is the container that contains the elements that are interesting
for keynav, so it must be aware of focus-chain and -navigation.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agounlockDialog: Don't make dialog focusable
Florian Müllner [Wed, 19 Feb 2020 16:20:37 +0000 (17:20 +0100)]
unlockDialog: Don't make dialog focusable

There is little point in focusing the dialog itself, we want keynav
to navigate inside instead and navigate between focusable children.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agoshell/stack: Ignore hidden children for focus navigation
Florian Müllner [Wed, 19 Feb 2020 16:30:15 +0000 (17:30 +0100)]
shell/stack: Ignore hidden children for focus navigation

ShellStack implements custom focus navigation, and will only ever
navigate into its top-most child. That kind of makes sense as long
as that child is actually visible, but not when it is hidden.

Descend into the stack to look for a focusable child instead.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agomagnifier: Use inhibit-unfocus API to keep wayland focus while hidden
Jonas Dreßler [Mon, 7 Oct 2019 13:02:17 +0000 (15:02 +0200)]
magnifier: Use inhibit-unfocus API to keep wayland focus while hidden

Since commit mutter/a2a8f0cda we force the focus surface of the
meta-wayland-pointer to NULL while the pointer is hidden. This
introduced an issue with the magnifier, where we use
`set_pointer_visible` to hide the real cursor and show our own cursor at
the correct position: Because the meta-wayland-pointer is still used to
communicate with Wayland clients, the UI of the windows will not respond
to mouse movement anymore as soon as the real cursor is hidden.

To fix this, use the newly added clutter_seat_inhibit_unfocus() API to
temporarily disable unsetting the focus-surface while the magnifier is
hiding the system cursor.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/993

6 years agomagnifier: Use own showSystemCursor() instead of set_pointer_visible()
Jonas Dreßler [Mon, 7 Oct 2019 13:00:19 +0000 (15:00 +0200)]
magnifier: Use own showSystemCursor() instead of set_pointer_visible()

We already have our own function to show the system cursor, use it!

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/993

6 years agoUpdate British English translation
Bruce Cowan [Sun, 23 Feb 2020 12:50:32 +0000 (12:50 +0000)]
Update British English translation

6 years agoshellEntry: Restore natural-height-set instead of forcing it
Florian Müllner [Fri, 21 Feb 2020 18:38:53 +0000 (19:38 +0100)]
shellEntry: Restore natural-height-set instead of forcing it

If we are transitioning the label from 0 to its natural height, we
must set natural-height-set again after querying the preferred height,
otherwise Clutter would skip the transition.

However when transitioning in the opposite direction, setting the
property to true can go horribly wrong:
If the actor hasn't been allocated before, it will store a fixed
natural height of 0. But as there is no fixed min-height, we can
end up with min-height > natural-height, which is a fatal error.

(This isn't an issue when *actually* setting a fixed height, as
that will set both natural and minimum height)

So instead of always setting natural-height-set to true, restore
its previous value to fix the issue.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2255

6 years agoutil: Don't wiggle when animations are disabled
Florian Müllner [Sat, 22 Feb 2020 13:25:37 +0000 (14:25 +0100)]
util: Don't wiggle when animations are disabled

repeatCount and autoReverse don't play well with animations disabled:
They cause password entries to wiggle themselves off-screen (by ending
up with some off-scale translation-x value).

While we should handle this more gracefully in the transition helpers,
it also makes sense to handle the case directly in wiggle(): As it
uses a chain of three transitions, we would still end up with a crude
one-frame-per-transition wiggle "animation".

Instead, do no animation at all as you would expect when animations are
disabled.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2236

6 years agoUpdate Karbi translation
Jor Teron [Sat, 22 Feb 2020 16:15:07 +0000 (16:15 +0000)]
Update Karbi translation

6 years agoUpdate Finnish translation
Jiri Grönroos [Sat, 22 Feb 2020 15:35:39 +0000 (15:35 +0000)]
Update Finnish translation

6 years agoUpdate French translation
Charles Monzat [Sat, 22 Feb 2020 14:12:42 +0000 (14:12 +0000)]
Update French translation

6 years agoUpdate Korean translation
Changwoo Ryu [Sat, 22 Feb 2020 10:46:09 +0000 (10:46 +0000)]
Update Korean translation

6 years agoUpdate Japanese translation
sicklylife [Fri, 21 Feb 2020 22:13:34 +0000 (22:13 +0000)]
Update Japanese translation

6 years agoUpdate Japanese translation
sicklylife [Fri, 21 Feb 2020 17:52:09 +0000 (17:52 +0000)]
Update Japanese translation

6 years agoUpdate Japanese translation
sicklylife [Fri, 21 Feb 2020 17:49:02 +0000 (17:49 +0000)]
Update Japanese translation

6 years agolayout: Show and hide keyboard using translation_y
Jonas Dreßler [Thu, 20 Feb 2020 13:23:01 +0000 (14:23 +0100)]
layout: Show and hide keyboard using translation_y

ClutterActors anchor-y property is deprecated, which means we get a
warning when animating it, so use the translation property instead to
show or hide the osk.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1039

6 years agounlockDialog: Use "normal" background
Florian Müllner [Thu, 13 Feb 2020 22:16:38 +0000 (23:16 +0100)]
unlockDialog: Use "normal" background

Now that we apply a strong blur effect to the background, it doesn't
make too much sense to use a separate lock-screen background: It will
be mostly unrecognizable anyway.

The alternative would be to turn off the blur effect if a different
background is used (or have a hidden setting for that), but that would
then imply that we must keep the contents readable without blur.

Let's avoid that rabbit hole and just re-use the regular background.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1001

6 years agojs/ui: Use Clutter.OffscreenRedirect.ON_IDLE
Daniel van Vugt [Wed, 19 Feb 2020 11:09:07 +0000 (19:09 +0800)]
js/ui: Use Clutter.OffscreenRedirect.ON_IDLE

To bypass offscreening in cases where continuous animation is happening.
Offscreening is slower in such cases so this reduces the render time of
animations within offscreenable actors.

On an i7-7700 this reduces the render time of boxpointers for example by
25-30%.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1025

6 years agoUpdate Serbian translation
Марко Костић [Fri, 21 Feb 2020 09:51:32 +0000 (09:51 +0000)]
Update Serbian translation

6 years agocloseDialog: Make dialog inactive while fading out
Jonas Ådahl [Wed, 19 Feb 2020 21:54:42 +0000 (22:54 +0100)]
closeDialog: Make dialog inactive while fading out

Otherwise the user might click Kill, which would crash if the fade-out
was triggered because a Wayland window was closed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1032

6 years agoslider: Calculate handle position in whole pixel units
Daniel van Vugt [Thu, 20 Feb 2020 08:02:20 +0000 (16:02 +0800)]
slider: Calculate handle position in whole pixel units

`-slider-handle-radius` is a floating point value and even in the default
theme it's not a whole number. Regardless of the fractional part that's
still going to occupy a whole extra pixel with antialiasing. So make room
for it. Otherwise it looks clipped, which it is by the Cairo context of
its `StDrawingArea`.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1569

6 years agost/texture-cache: Heap-allocate saved scales
Florian Müllner [Thu, 20 Feb 2020 21:51:38 +0000 (22:51 +0100)]
st/texture-cache: Heap-allocate saved scales

Otherwise we end up reading random junk later, with the result that
we fail to evict textures with scaled keys.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2244

6 years agostatus/keyboard: Check for monkey-patched property before using it
Florian Müllner [Thu, 20 Feb 2020 15:03:54 +0000 (16:03 +0100)]
status/keyboard: Check for monkey-patched property before using it

This avoid another "reference to undefined property" warning.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1035

6 years agoauthPrompt: Initialize property in _init()
Florian Müllner [Thu, 20 Feb 2020 14:57:36 +0000 (15:57 +0100)]
authPrompt: Initialize property in _init()

This avoid a "reference to undefined property" warning when using
it in a comparison.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1035

6 years agoUpdate Japanese translation
sicklylife [Thu, 20 Feb 2020 18:04:30 +0000 (18:04 +0000)]
Update Japanese translation

6 years agoUpdate Japanese translation
sicklylife [Thu, 20 Feb 2020 18:01:09 +0000 (18:01 +0000)]
Update Japanese translation

6 years agokeyboard: Specify symbolic icons to use in default keys
Carlos Garnacho [Fri, 14 Feb 2020 17:11:43 +0000 (18:11 +0100)]
keyboard: Specify symbolic icons to use in default keys

The style classes are not removed yet, might make sense to do that
if they don't bring anything wrt theming.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2214

6 years agotheme: Update theming of special OSK keys
Carlos Garnacho [Sat, 15 Feb 2020 14:49:43 +0000 (15:49 +0100)]
theme: Update theming of special OSK keys

The icons in those are no longer assets, but symbolic icons.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2214

6 years agodata: Add OSK assets as symbolic icons
Carlos Garnacho [Sat, 15 Feb 2020 13:23:56 +0000 (14:23 +0100)]
data: Add OSK assets as symbolic icons

Courtesy of jimmac/snwh

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2214

6 years agokeyboard: Add support for setting OSK keys with icons
Carlos Garnacho [Fri, 14 Feb 2020 17:09:32 +0000 (18:09 +0100)]
keyboard: Add support for setting OSK keys with icons

Unused at the moment, but add the plumbing so that default key
definitions may specify symbolic icons that will be shown instead
of the text.

This is intended to replace the use of CSS and background-image
to handle those buttons with an icon.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2214

6 years agointrospect: Add AnimationsEnabled property
Jonas Ådahl [Tue, 1 Oct 2019 10:07:03 +0000 (12:07 +0200)]
introspect: Add AnimationsEnabled property

While the gsetting is available for all who needs it, the Shell might
override it given various hueristics. Expose the decision made by the
Shell via a new property.

Intended to be used by gsd-xsettings as well as xdg-desktop-portal-gtk.

This also add a version property to the API, so that semi external
services (xdg-desktop-portal-gtk) can detect what API is expected to be
present.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/757

6 years agointrospect: Rename variable
Jonas Ådahl [Tue, 1 Oct 2019 10:06:13 +0000 (12:06 +0200)]
introspect: Rename variable

It was too generic, and would conflict with a StSettings variable.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/757

6 years agomain: Inhibit animations when there is a remote desktop session
Jonas Ådahl [Tue, 1 Oct 2019 10:04:52 +0000 (12:04 +0200)]
main: Inhibit animations when there is a remote desktop session

If a remote desktop session asks for animations to be disabled, inhibit
animations while the session is active.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/757

6 years agomain: Inhibit animations if X server advertises VNC-EXTENSION
Jonas Ådahl [Tue, 1 Oct 2019 10:03:52 +0000 (12:03 +0200)]
main: Inhibit animations if X server advertises VNC-EXTENSION

This was previously done by gsd-xsettings to disable animations when
running in Xvnc.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/757

6 years agomain: Inhibit animations when software rendered
Jonas Ådahl [Tue, 1 Oct 2019 10:02:31 +0000 (12:02 +0200)]
main: Inhibit animations when software rendered

This was previously decided by gsd-xsettings.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/757

6 years agost/settings: Add API to inhibit animations
Jonas Ådahl [Tue, 1 Oct 2019 09:56:34 +0000 (11:56 +0200)]
st/settings: Add API to inhibit animations

There may be situations where we shouldn't enable animations. Make it
possible for the Shell to decide when there are such situations and in
when needed inhibit animations.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/757

6 years agoshell-util: Add API to check for X11 extensions
Jonas Ådahl [Tue, 1 Oct 2019 09:55:33 +0000 (11:55 +0200)]
shell-util: Add API to check for X11 extensions

Will be used to disable animations when running inside Xvnc. This was
done in gsd-xsettings before.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/757

6 years agointrospect: Add helper to check method call permission
Jonas Ådahl [Wed, 25 Sep 2019 18:36:28 +0000 (20:36 +0200)]
introspect: Add helper to check method call permission

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/757

6 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Thu, 20 Feb 2020 10:54:02 +0000 (10:54 +0000)]
Update Brazilian Portuguese translation

6 years agoUpdate Basque translation
Asier Sarasua Garmendia [Wed, 19 Feb 2020 19:21:09 +0000 (19:21 +0000)]
Update Basque translation

6 years agoextensionPrefs: Fix more fallout from un-templating strings
Florian Müllner [Wed, 19 Feb 2020 18:25:35 +0000 (19:25 +0100)]
extensionPrefs: Fix more fallout from un-templating strings

The version field in extension metadata is a number, so we cannot
just use it as a string.

('creator' should be fine, but change it as well for the symmetry)

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1031

6 years agoiconGrid: Create icon clones in a separate loop
Daniel van Vugt [Fri, 14 Feb 2020 10:24:58 +0000 (18:24 +0800)]
iconGrid: Create icon clones in a separate loop

For reasons not yet fully understood, `Main.uiGroup.add_actor` takes around
10 milliseconds to complete.

Because of this, each `actor.opacity = 0` has a good chance of falling
on a different frame. And when it does, `_opacityChangedId` also lands
on multiple different frames each incurring a separate relayout cycle.
It is this excessive number of relayouts that causes stuttering in the
icon grid animation (#2065). But it is the slowness of `uiGroup.add_actor`
that causes the number to be excessive when it should be one.

By creating the clones and adding them to `uiGroup` early, we then enable
the existing loop starting the animation to complete within a single frame.
And by completing within a single frame all the opacity changes land within
the same frame interval, thus incurring only a single relayout instead of
many.

This issue went unnoticed until 004a5e1042 (!704), after which the slow
emissions of `notify::opacity` became a more visible performance problem.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/2065
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1002

6 years agotheme: Fix workspace switcher popup box size
Jonas Dreßler [Wed, 19 Feb 2020 08:51:11 +0000 (09:51 +0100)]
theme: Fix workspace switcher popup box size

This should be the last fallout from the theme refresh, make sure all
the boxes of the workspace switcher popup are the correct size.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1022

6 years agotheme: Make the focus state of buttons a bit more visible
Jonas Dreßler [Wed, 19 Feb 2020 08:49:36 +0000 (09:49 +0100)]
theme: Make the focus state of buttons a bit more visible

This changed with the theme refactor was probably not intended, so make
the border on key-focused buttons a bit less transparent to make it
easier to see.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1022

6 years agodateMenu: Use BindConstraint for indicator pad
Florian Müllner [Wed, 19 Feb 2020 00:52:59 +0000 (01:52 +0100)]
dateMenu: Use BindConstraint for indicator pad

Now that Clutter.BindConstraint modifies the size request in addition to
the allocation, we can use it instead of the custom IndicatorPad widget.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1026

6 years agoappDisplay: Remove unnecessary bind constraint
Georges Basile Stavracas Neto [Wed, 19 Feb 2020 12:20:05 +0000 (09:20 -0300)]
appDisplay: Remove unnecessary bind constraint

Now that the bind constraint changes the preferred size of
the actor, a major flaw in the AppDisplay code was exposed:
the folder dialog depends on the preferred size of a parent,
and the parent depends on the preferred size of the folder
dialog.

While we know this is not actually true, we shouldn't rely
on broken behavior to achieve this result. What's interesting
is that the bind constraint used by the folder dialog is a
relic of the development phase; we now control the position
and size of the dialog with a combination of CSS, and alignment.

Remove the unnecessary bind constraint.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1027

6 years agodateMenu: Hide overlay scrollbar in the notification popup
Jonas Dreßler [Sun, 16 Feb 2020 20:57:34 +0000 (21:57 +0100)]
dateMenu: Hide overlay scrollbar in the notification popup

Since the design of the notification popup changed with the theme
refactor and there are now boxes around the world-clock and weather
sections, the overlay scrollbar that is shown above them looks rather
bad. So simply hide that scrollbar, we still have the vfade effect to
indicate the container is scrollable and we also depend on that in the
new popup app-folders.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1013

6 years agotheme: Drop fixed auth prompt entry width
Florian Müllner [Wed, 19 Feb 2020 00:59:54 +0000 (01:59 +0100)]
theme: Drop fixed auth prompt entry width

We already set a fixed width on the parent, so simply let the entry take
up the available space that isn't used by the surrounding elements.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1021

6 years agoStyle looking-glass $variant independant
Feichtmeier [Wed, 19 Feb 2020 09:36:23 +0000 (10:36 +0100)]
Style looking-glass $variant independant

- use osd colors
- also fix the toolbar buttons jumping on click
- adding better unchecked/hover/checkedifferences
- use $link_color for links
- remove the strong text-shadow

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1023

6 years agolookingGlass: Also handle null objects in objectToString
Jonas Dreßler [Wed, 19 Feb 2020 10:53:05 +0000 (11:53 +0100)]
lookingGlass: Also handle null objects in objectToString

Whoops, while ff4623454 fixed the handling of `undefined` objects,
`null` objects obviously still don't have a toString() method. So also
handle those and return 'null' in case the object is null.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1024

6 years agolookingGlass: Handle undefined in objectToString()
Florian Müllner [Wed, 19 Feb 2020 00:43:23 +0000 (01:43 +0100)]
lookingGlass: Handle undefined in objectToString()

Fallout from commit 9d941f8202: Template strings handle undefined
values just fine, the replacement does not. Fix that.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1020

6 years agoworkspace: Ensure style of window-chrome titles before requesting width
Jonas Dreßler [Tue, 18 Feb 2020 22:21:52 +0000 (23:21 +0100)]
workspace: Ensure style of window-chrome titles before requesting width

Make sure the stylesheet properties of the window-chrome title are
updated before requesting the preferred width of the title to prevent
size changes of the title after we animated the width.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/58

6 years agoUpdate Chinese (Taiwan) translation
Chao-Hsiung Liao [Wed, 19 Feb 2020 06:37:20 +0000 (06:37 +0000)]
Update Chinese (Taiwan) translation

6 years agouserWidget: Always set actor size inside update()
Jonas Dreßler [Sun, 16 Feb 2020 22:16:52 +0000 (23:16 +0100)]
userWidget: Always set actor size inside update()

We also want to ensure the Avatar StBin is sized correctly when an icon
child is used, so always set the actor size inside the `update()`
function.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1018

6 years agouserWidget: Simplify icon size setting a bit
Jonas Dreßler [Sun, 16 Feb 2020 22:03:14 +0000 (23:03 +0100)]
userWidget: Simplify icon size setting a bit

Remove the default icon size of -1 and always set the container StBin to
a real size. This fixes an error where the "width" and "height"
properties get set to -2 (which is -1 * scaleFactor) in the `_init`
function.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1018

6 years agoauthPrompt: Fix cancel button visibility
Florian Müllner [Tue, 18 Feb 2020 21:23:26 +0000 (22:23 +0100)]
authPrompt: Fix cancel button visibility

Grrr, this slipped in in 5cad5c20e9f, and we don't have a compiler
to catch those kinds of bugs :-(

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2228

6 years agoUpdate Swedish translation
Anders Jonsson [Tue, 18 Feb 2020 21:02:42 +0000 (21:02 +0000)]
Update Swedish translation

6 years agoUpdate Catalan translation
Jordi Mas [Tue, 18 Feb 2020 19:48:36 +0000 (20:48 +0100)]
Update Catalan translation

6 years agoUpdate Polish translation
Piotr Drąg [Tue, 18 Feb 2020 18:11:08 +0000 (19:11 +0100)]
Update Polish translation

6 years agoUpdate Japanese translation
sicklylife [Tue, 18 Feb 2020 16:52:19 +0000 (16:52 +0000)]
Update Japanese translation

6 years agoUpdate Japanese translation
sicklylife [Tue, 18 Feb 2020 16:50:36 +0000 (16:50 +0000)]
Update Japanese translation